<script>
import {
  get_userInfo,
} from '@/api/login.js'
export default {
  onLaunch: function () {
    let that = this
    // #ifdef MP-WEIXIN
    //! 获取微信小程序顶部状态栏 及 导航栏 胶囊按钮高度 宽度 间隔等信息
    uni.getSystemInfo({
      success: (result) => {
        // 获取右侧胶囊的信息 单位px
        const menuButtonInfo = uni.getMenuButtonBoundingClientRect()

        let menuInfo = {
          actionBarHeight: result.statusBarHeight + 40, //  状态栏高度 + 标题栏高度 自定义导航栏高度
          navigationBarHeight: result.navigationBarHeight,// 导航栏高度 ---底部系统自带操作按钮的导航栏高度
          statusBarHeight: result.statusBarHeight,//状态栏高度----用来给自定义导航条页面的顶部导航条设计padding-top使用：目的留出系统的状态栏区域
          menuWidth: menuButtonInfo.width,//右侧的胶囊宽度--用来给自定义导航条页面的左侧胶囊设置使用
          menuHeight: menuButtonInfo.height,//右侧的胶囊高度--用来给自定义导航条页面的左侧胶囊设置使用
          menuRight: result.screenWidth - menuButtonInfo.right,//右侧的胶囊距离右侧屏幕距离--用来给自定义导航条页面的左侧胶囊设置使用
          menuTop: menuButtonInfo.top,//右侧的胶囊顶部距离屏幕顶部的距离--用来给自定义导航条页面的左侧胶囊设置使用
        }
        //! 状态栏：statusBarHeight, 标题栏：40px + 状态栏，导航栏：navigationBarHeight || statusBarHeight/2，菜单栏：50px + 导航栏
        uni.setStorageSync('menuInfo', menuInfo)
      },
      fail: (error) => {
        console.log(error)
      }
    })
    // #endif
    const date = new Date()
    const userInfo = uni.getStorageSync('app_userInfo')

    if (userInfo && (date.getTime() - userInfo.tokenTime > 1000 * 3600 * 24 * 30)) { // 30天token过期
      // 如果已过期 则清空数据
      uni.removeStorageSync('app_userInfo')
      this.$store.state.login.userInfo = {}
    }

    let urlList = ['https://gqt.zwfw.jxzwfww.gov.cn/gqt/gqt-home-pc/js/gqt.webview.1.5.6.js', 'https://gqt.zwfw.jxzwfww.gov.cn/gqt/gqt-home-pc/js/gqt-js-bridge.0.0.3.js']
    urlList.forEach(item => {
      this.loadScript(item)
    })
    // #ifdef H5
    if (window.GqtAllReady) {
      GqtJsBridge.callHandler(
        "getAuthTicket",	// 方法名
        {},	// 参数
        res => {
          console.log('这里是啥1', res)
          //回调函数
        }
      );
    } else {
      document.addEventListener("GqtAllReady", function () {
        GqtJsBridge.callHandler(
          "getAuthTicket",	// 方法名
          {},	// 参数
          res => {
            if (res.status == 'success') {
              let { auth_ticket } = res.data
              that.$store.dispatch('getUserTicket', {
                ticket: auth_ticket,
              }).then((ress) => {
                if (ress.code == 500) {
                  uni.reLaunch({
                    url: '/pages/login/index'
                  });
                } else if (ress.code == 200) {
                  get_userInfo(((data) => {
                    // console.log(data, '这里是啥')
                    // 储存用户信息
                    that.$store.commit("set_userInfo", [data.data, ress.token]);
                    uni.setStorageSync("authorityList", data.data.permissions);
                    that.$store.commit("set_authority", data.data.permissions);
                    that.$store.commit("set_loginIp", data.data?.sysUser?.remark || null);
                    if (data.staffId) {
                      that.$store.commit("set_staffId", data.staffId);
                    }
                    uni.setStorageSync("authorloginIp", data.data?.sysUser?.remark);
                  }), ress.token)
                }
              }).catch(err => {
                uni.reLaunch({
                  url: '/pages/login/index'
                });
              })
            } else {
              uni.reLaunch({
                url: '/pages/login/index'
              });
            }
          }
        );
      })
    }
    // #endif
  },
  onShow() {
    const updateManager = uni.getUpdateManager();
    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      console.log(res.hasUpdate);
    });

    updateManager.onUpdateReady(function (res) {
      uni.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        showCancel: false,
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate();
          }
        }
      });

    });

    updateManager.onUpdateFailed(function (res) {
      // 新的版本下载失败
      console.log('download error')
      uni.showModal({
        title: '提示',
        content: '新版小程序下载失败\n请自行退出程序，手动卸载本程序，再运行',
        confirmText: "知道了"
      });
    });

  },
  methods: {
    loadScript(item) {
      // 创建script标签
      const script = document.createElement('script');

      // 设置script属性
      script.src = item;

      script.async = true;

      // 设置加载成功回调
      script.onload = () => {
        console.log('脚本加载成功');
        document.getElementById('script-result').innerHTML = '脚本已成功加载';
      };


      // 设置加载失败回调
      script.onerror = () => {
        console.error('脚本加载失败');
        document.getElementById('script-result').innerHTML = '脚本加载失败';
      };

      // 将script标签添加到文档中
      document.head.appendChild(script);
    }
  }
}
</script>

<style>
@import "colorui/main.css";
@import "colorui/icon.css";
</style>
